1. Field
This disclosure relates to multimaster systems, more particularly to the handling of errors in multimaster systems to avoid error propagation.
2. Background
Most computing devices are multimaster devices. A computing device is any device that has a central processor or controller, memory and can perform some function or task. This includes, but is not limited to, personal computers, most electronic equipment, communications equipment and accessories. A multimaster system is any system that has more than one master. A master is any device that can address other devices using one or more communications buses. Examples include, but again are not limited to, central processing units (CPUs), Network Interface Controllers (NIC), direct memory access (DMA) controllers. For example, a DMA controller is a master because it can generate read and write transactions to targets such as memory.
When several masters exist in a system, errors can propagate from one master to the other. For example, if an error occurs in a multimaster system a processor is notified of the error, typically by an interrupt request. In current systems, other masters in the system may be unaware of the error. Another master may attempt to work with the same component that generated the error, and receive the same error, or bad data without notification of the error. This propagates bad data and/or the error to the next master. The asynchronous nature of these events, make it difficult or impossible to properly diagnose the originating problem.
This causes problems on the local level, within that computing device. There exists a fair bit of latency between when the interrupt occurs, and when the notified processor decodes the error and handles it. During this time, other masters may experience the same error, or propagate wrong data. This problem is magnified when considering networked devices, where the error may actually be passed from one device to another across the network. This can result in unbounded errors and unpredictable results.